The subject matter discussed in the background section shall not be assumed to be prior art merely as a result of its mention in the background section. Similarly, a problem mentioned in the background section or associated with the subject matter of the background section are not to be assumed as having been previously recognized in the prior art. The subject matter in the background section merely represents different approaches, which in and of themselves may also correspond to the claimed embodiments.
Machine learning systems analyze data and establish models to make predictions and decisions. Examples of machine learning tasks include classification, regression and clustering. A predictive engine is a machine learning system that typically includes a data processing framework and one or more algorithms trained and configured based on collections of data. Such predictive engines are deployed to return prediction results upon request. A simple example is a recommendation engine for suggesting a certain number of products to a customer based on pricing, product availabilities, product similarities, current sales strategy, and other factors. Such recommendations may be personalized to a specific user by taking into account user purchase history, browsing history, geographical location, or other user preferences or settings. Exemplary software tools for building machine learning systems include Apache Spark MLlib, Apache Mahout™, scikit-learn, and R.
With the advent of big data analytics there is heightened interest in the design of machine learning systems and smart applications. However, even with the wide availability of processing frameworks, algorithm libraries, and data storage systems, various issues exist in bringing machine learning applications from prototyping into production. In addition to data integration and system scalability, real-time deployment of predictive engines in a possibly distributed environment requires dynamic query responses, live model update with new data, inclusion of business logics, and most importantly, intelligent and possibly live evaluation and tuning of predictive engines to update the underlying predictive models or algorithms to generate new engine variants.
Certain software solutions provide tools for building machine learning systems as encapsulated solutions. Unfortunately, such encapsulations, while facilitating fast integration into deployment platforms and systems, also make it difficult to identify causes for inaccurate prediction results and also make it difficult to extensively track sequences of events that trigger particular prediction results.
As the number of models employed and data analyzed continues to grow, there is a need for a systematic model management platform to streamline the logistics of training and severing up predictive models to multiple users as well as the need for model collection and maintenance, including the reproduction of historical models for auditing, debugging, delayed evaluation and state rollback with automatic version control and tracking.
The present state of the art may therefore benefit from the systems, methods, and apparatuses for implementing machine learning model training and deployment with a rollback mechanism within a computing environment as is described herein which address the previously unsolved need for easy and efficient creation, deployment, evaluation, and tuning of machine learning systems for developers and data scientists.